package com.doit.day04

import scala.io.Source

/**
 * 数据如下  :每个字母代表一个人 ,  统计任意一个人和其他人的共同好友
 * A:B,C,D,F,E,O
 * B:A,C,E,K
 * C:F,A,D,I
 * D:A,E,F,L
 * E:B,C,D,M,L
 * F:A,B,C,D,E,O,M
 * G:A,C,D,E,F
 * H:A,C,D,E,O
 * I:A,O
 * J:B,O
 * K:A,C,D
 * L:D,E,F
 * M:E,F,G
 * O:A,H,I,J
 */
object _02_共同好友案例 {
  def main(args: Array[String]): Unit = {
    //1.读文件并且将数据放在list集合中
    val list: List[String] = Source.fromFile("data/friends.txt").getLines().toList
    //2.map算子，对数据进行切割  切割完的返回值类型
    val myAndFriends: List[(String, Array[String])] = list.map(line => {
      val arr: Array[String] = line.split(":")
      val my: String = arr(0)
      val friends: Array[String] = arr(1).split(",")
      (my, friends)
    })

    //3.用for循环对比，找出共同好友
    for(tp <- 0 until  list.length - 1){
      for(tp1 <- tp+1 until  list.length){
        val my: (String, Array[String]) = myAndFriends(tp)
        val you: (String, Array[String]) = myAndFriends(tp1)
        val sameFriends: Array[String] = my._2.intersect(you._2)
        if (sameFriends.isEmpty){
          println(s"${my._1} 和 ${you._1} 没有共同好友" )
        }else{
          println(s"${my._1} 和 ${you._1} 的共同好友是:${sameFriends.toList}" )
        }
      }
    }
  }
}
